In 1917 Vernan created a telegraphic cipher system (U.S. Pat. No. 1,310,719; issued Jul. 22, 1919) which used the addition of the value of a message character on a paper tape with another character on a looped key tape; the sum of the values was transmitted as the cipher character. It was soon recognized that the security of the method relied on very long key tapes. Later to eliminate excessively long key tapes, Morehouse (1918) connected two Vernan telegraphic machines together employing two separate looped key tapes so that the output of the first modified the output of the second and this combined output encoded the message tape to create an enciphered message. These two loops had non equal lengths such that all the permutations of the characters on one would occur with all the characters on the other. Thus, two shorter tapes could mimic the employment of a single much larger tape. Mauborgne showed that the Morehouse system was cryptographically secure only when the key tape (or the permutation of two tapes) was comparable in length to the clear text to be encrypted and was used only one time. Any repetition of any kind of the key either within that message or its use to encrypt other messages would compromise the key tape. It was also shown that a ciphertext made using an encryption key the same size as the message itself but consisting of coherent text could be broken, but not if the key were a collection of random characters.
Dr. Man Young Rhee, in his book Cryptography and Secure Communications (McGraw-Hill, 1994) states on page 12: "A cryptosystem which can resist any cryptanalytic attack, no matter how much computation is allowed is said to be unconditionally secure. The one time pad is the only unconditionally secure cipher in use. One of the most remarkable ciphers is the one-time pad in which the ciphertext is the bit-by-bit modulo-2 sum of the plaintext and a nonrepeating keystream of the same length. However, the one-time pad is impractical for most applications because of the large size of the nonrepeating key."
U.S. Pat. No. 5,113,444 issued May 12, 1992 entitled "RANDOM CHOICE CIPHER SYSTEM AND METHOD" states "First random number strings are a relatively scarce commodity. Second, the receiver must have at hand exactly the same random number sequence the sender used or must be able to reproduce it. The first of these alternatives requires the sharing of an enormous amount of key material. The sharing of an enormous amount of key material is impractical. The second alternative is impossible." The first and second conclusions to these statements are inaccurate. Statistical analysis of the sampling of digital sources (specifically 16 bit sound files) shows that random or arbitrary numbers or bytes are readily available in the digital/computer environment. This ready availability of random numbers is contrary to the teachings and opinions of those skilled in the -art as well as those expert in the art of cryptography.
Another prevailing view of those skilled in cryptography is that a pseudo-random number series has an inherent weakness because the formula that generated the series may be reconstructed by others to predict the series.
U.S. Pat. No. 5,113,444, entitled "RANDOM CODING CIPHER SYSTEM AND METHODS" and U.S. Pat. No. 5,307,412, teach the use of a thesaurus and/or synonyms together with arithmetic/logic operations to combine data and masks to accomplish encoding/decoding. These patents are thus limited by the use of the thesaurus and synonyms.
U.S. Pat. No. 5,077,793 entitled "RESIDUE NUMBER ENCRYPTION AND DECRYPTION SYSTEM" teaches (column 3 lines 40 to column 4 lines 8): "If the moduli are chosen to be mutually prime, then all integers with the range of zero to the product of the moduli minus one can be uniquely represented. The importance of the residue number system to numerical process is that the operations of addition, subtraction, and multiplication can be performed without the use of carry operations between the moduli. In other words, each digit in the n-tuple can be operated on independently and in parallel." And shows that for the sum Z of the digits X and Y, the ith digit may be given by: z.sub.i =(x.sub.i +y.sub.i) mod mi and that "a sixteen bit binary number can be represented in the residue number system using five moduli 5,7,11,13,17." The moduli (m.sub.i) are chosen to be relatively prime to each other. In Columns 5 and 6 the description goes on to define Z=(X+Y) mod M (where M is the product of all of the moduli, i.e., M=m.sub.1 .times.m.sub.2 . . . m.sub.n,) is a generalization of the Vigenere cipher. If Z=(X-Y) mod M is used to encrypt X using Y then X may be recovered from Z by X=(Y-Z) mod M, which is a generalization of the Beaufort cipher. The method described by this patent requires that multiple and different moduli must be used at the same time to calculate different residues which are transmitted to a receiver to uniquely define the number which was encrypted. The encryption method described herein does not use multiple moduli and is different from this patent. Because different moduli are not used, the encryption/decryption apparatus may be simpler in design.
Pages 13 through 15 in "Applied Cryptography, Second Edition" by Bruce Schneier, John Wiley & Sons, Inc. 1996, provide a critique on the security inherent in the Vigenere encryption method. "The simple-XOR algorithm is really an embarrassment; it's nothing more than a Vigenere polyalphabetic cipher." "There is no real security here. This kind of encryption is trivial to break, even without computers. It will take only a few seconds with a computer. Assume the plaintext is English. Furthermore, assume the key length is any small number of bytes. Here's how to break it:
1. Discover the length of the key by a procedure known as counting coincidences. XOR the ciphertext against itself shifted various number of bytes, and count those bytes that are equal. If the displacement is a multiple of the key length, then something over 6 percent of the bytes will be equal. If it is not, then less than 0.4 percent will be equal (assuming a random key encrypting normal ASCII text; other plaintext will have different numbers). This is called the index of coincidence. The smallest displacement that indicates a multiple of the key length is the length of the key.
2. Shift the ciphertext by that length and XOR it with itself. This removes the key and leaves you with the plaintext XORed with the plaintext shifted then length of the key. Since English has 1.3 bits of real information per byte, there is plenty of redundancy for determining a unique decryption."
The above method for breaking a Vigenere cipher relies on the fact that XOR (base 2) is its own inverse and that the encrypting key (masking bytes) are repeated many times. The XOR is its own inverse because A XOR B XOR B=A. It is an object of the present invention to improve upon the security of the Vigenere and Variant Beaufort cipher methods by applying them not to characters directly but rather to digits representing that character in another number base.
Pages 70 and 71 in "Cryptography: An Introduction to Computer Security" by Jennifer Seberry and Josef Pieprzyk, Prentice Hall, 1989--"The Vigenere cipher. The key is specified by a sequence of letters: K=k.sub.1 . . . k.sub.d where k.sub.i, (i=1, . . . ,d) gives the amount of shift in the ith alphabet, that is: f.sub.i (a)=a +k.sub.i (mod n)." "Variant Beaufort cipher. Here we use: f.sub.i (a)=(a-k.sub.i) (mod n). Since a-k.sub.i =a+(n-k.sub.i) (mod n) the Variant Beaufort cipher is equivalent to the Vigenere cipher with the key character n-k.sub.i. The Variant Beaufort cipher is, in fact, the inverse of the Vigenere cipher since if one is used to encipher the other is used to decipher."
Historically the Vigenere and Variant Beaufort ciphers have been applied to whole letters or characters. That is, the value (position in the alphabet) of a character has a number either added or subtracted to it (modulo the length of the alphabet) and the resultant number is used to specify a character position in the alphabet and the character at that position is sent as the ciphered character.
Herein BCN refers to the binary to base n conversion of a number and the representation of the base n number as a digit shown in binary. A common example (base 10) is BCD (binary coded decimal) where the values 0 through 9 are represented by 4 binary bits.
Herein a byte is defined as two or more bits. In typical usage a byte is considered to be, but is not limited to, eight bits.
Herein, arrays (or masks) are described as being comprised of elements. Such elements are defined as any actual or logical grouping, for example: a bit, a nibble, a byte or word of any length.
It is an object of the present invention to provide an encryption/decryption apparatus and method that does not depend upon the use of thesaurus's and/or synonyms and/or other forms of look-up tables.
It is yet another object of the present invention to provide an encryption/decryption scheme wherein the presentation of a character in one number base is transformed into a corresponding representation in another number base.